// Copyright 叶湘 ( weixin:yexiang841, email:yexiang841@qq.com ), Shitouren Studio. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "Property/Q3D_CPPU_PropertyState.h"
#include "Q3D_CPPI_PropertyState.generated.h"

// This class does not need to be modified.
UINTERFACE(MinimalAPI, Blueprintable, meta = (Tooltip = "使用 PropertyState 必须实现的接口(C++)"))
class UQ3D_CPPI_PropertyState : public UInterface
{
	GENERATED_BODY()
};

/**
 * 
 */
class Q3D_LIB_API IQ3D_CPPI_PropertyState
{
	GENERATED_BODY()

	// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
	UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = Q3D_I_PropertyState, meta = (Tooltip = "PropertyState 接口，读取 PropertyState"))
	void Q3D_IF_PropertyState_Get(UPARAM(DisplayName = "ptr_u_property_state") UQ3D_CPPU_PropertyState *&ptr_u_property_state) const;

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = Q3D_I_PropertyState, meta = (Tooltip = "PropertyState 接口，读取一个装载 PropertyInit 的 DataTable 用于初始化 PropertyState"))
	void Q3D_IF_PropertyState_InitDT_Get(UPARAM(DisplayName = "ptr_dt_property_init") UDataTable *&ptr_dt_property_init) const;
};
